package me.boot.sys.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import me.boot.db.mybatis.template.entity.AutoEntity;
import me.boot.gen.table.annotation.ColumnComment;
import me.boot.gen.table.annotation.Unique;

/**
 * 系统字典表
 * <p>
 * 1、字典分为全局字典与公司字典，当 org_id = 0 时 为全局字典
 * 2、组合约束字段：org_id + code
 * 3、根据约定的code查询字典，查询顺序：部门级 -> 上级部门级 -> ... -> 公司级 -> 全局级
 * 4、公司字典可以覆盖全局字典
 * </p>
 */
@Getter
@Setter
@ApiModel("字典码表")
@TableName(autoResultMap = true)
public class SysDicCode extends AutoEntity {

    /**
     * 超管只能创建全局字典码
     * 业务人员可创建公司级或所在部门级
     * 部门级字典码，跨部门不可见
     */
    @Unique(columns = {"org_id,code"})
    @ColumnComment("组织id")
    @ApiModelProperty(value = "组织id")
    @TableField
    private Long orgId = 0L;

    @Unique(columns = {"org_id,code"})
    @ColumnComment("字典码")
    @ApiModelProperty(value = "字典码", notes = "建议大写")
    @TableField
    private String code;


}
